package com.ssky.bean.validator.core;

import java.util.HashMap;
import java.util.Map;

public class BaseValidatorContext  implements IValidatorContext {

    //默认为5
    private int maxErrCount = 5;

    //Map<ruleId,Boolean>
    private final Map<String,Boolean> ruleExeRstMap = new HashMap<>();

    /**
     *
     * @param maxErrCount 最大校验错误数
     */
    public BaseValidatorContext(int maxErrCount) {
        this.maxErrCount = maxErrCount;
    }

    /**
     * @param maxErrCount 最大校验错误数
     */
    @Override
    public void setMaxErrCount(Integer maxErrCount) {
        //默认为5
        if (maxErrCount != null) {
            this.maxErrCount = maxErrCount;
        }
    }

    /**
     * @return 最大校验错误数
     */
    @Override
    public int getMaxErrCount() {
        return maxErrCount;
    }

    /**
     * 缓存规则执行的结果
     * @param ruleId
     * @param rst
     */
    @Override
    public void setRuleRstCache(String ruleId, Boolean rst) {
         ruleExeRstMap.put(ruleId,rst);
    }

    /**
     * @param ruleId 指定规则id
     * @return 获取缓存起来的规则执行结果
     */
    @Override
    public Boolean getRuleRstCache(String ruleId) {
        Boolean rst = ruleExeRstMap.get(ruleId);
        return rst;
    }


}